#include<iostream>
using namespace std;
#include<vector>
#include<algorithm>

//vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
//    int lengthNums1 = nums1.size();
//    int lengthNums2 = nums2.size();
//    sort(nums1.begin(), nums1.end());
//    sort(nums2.begin(), nums2.end());
//    int cur1 = 0;
//    int cur2 = 0;
//    vector<int> nums3;
//    while (cur1 < lengthNums1 && cur2 < lengthNums2)
//    {
//        while (cur1 < lengthNums1 - 1 && nums1[cur1] == nums1[cur1 + 1])
//        {
//            cur1++;
//        }
//        while (cur2 < lengthNums2 - 1 && nums2[cur2] == nums2[cur2 + 1])
//        {
//            cur2++;
//        }
//
//        if (nums1[cur1] < nums2[cur2])
//        {
//            cur1++;
//        }
//        else if (nums1[cur1] > nums2[cur2])
//        {
//            cur2++;
//        }
//        else {
//            nums3.push_back(nums1[cur1]);
//            cur1++;
//            cur2++;
//        }
//
//    }
//
//    return nums3;
//}
//int main()
//{
//    vector<int> nums1 = { 1,2 };
//    vector<int> nums2 = { 2,2,2,2 };
//    intersection(nums1, nums2);
//    return 0;
//}


//第三题需要用栈进行匹配
//利用栈完成回文判定
int main()
{
    string s;
    string example;
    cin>>s;
    int lengthNums1=s.size();
    for(int i=0;i<lengthNums1;i++)
    {
        if(example.size()==0||example.back()!=s[i])
        {
            example.push_back(s[i]);
        }
        else{
            example.pop_back();
        }
    }
    if(example.size()==0)
    {
        cout<<0<<endl;
    }
    else{
        cout<<example<<endl;
    }
    return 0;
}
